package com.xique.door.project.miniprogram.api;

import com.github.lianjiatech.retrofit.spring.boot.annotation.RetrofitClient;
import com.xique.common.core.utils.json.JSONObject;
import com.xique.common.core.web.domain.AjaxResult;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;

import java.util.Map;

/**
 * @author: caogq
 * @Date: 2021/7/31 10:20
 * @Description:
 */
@RetrofitClient(baseUrl = "${wx.authUrl}")
public interface IWxClientApi {

    /**
     * 获取接口凭证
     * @author shd
     * @date 2022/4/14 9:16
     * @param map
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    @GET("cgi-bin/token")
    JSONObject getAccessToken(@QueryMap Map<String, Object> map);

    /**
     * 获取微信手机
     * @author shd
     * @date 2022/4/14 14:54
     * @param map
     * @return com.xique.common.core.utils.json.JSONObject
     */
    @POST("wxa/business/getuserphonenumber")
    JSONObject getPhone(@QueryMap Map<String, Object> param, @Body Map<String, Object> map);

    /**
     * 登录
     * @author shd
     * @date 2022/4/14 9:16
     * @param map
     * @return com.xique.common.core.web.domain.AjaxResult
     */
    @GET("sns/jscode2session")
    JSONObject jscode2session(@QueryMap Map<String, Object> map);

    /**
     * 订阅消息推送
     * @author shd
     * @date 2022/4/25 14:36
     * @param param
     * @param map
     * @return com.xique.common.core.utils.json.JSONObject
     */
    @POST("cgi-bin/message/template/send")
    JSONObject bizsend(@QueryMap Map<String, Object> param, @Body Map<String, Object> map);

    /**
     * 获取用户列表
     * @author shd
     * @date 2022/4/25 14:37
     * @param map
     * @return com.xique.common.core.utils.json.JSONObject
     */
    @GET("cgi-bin/user/get")
    JSONObject getUserList(@QueryMap Map<String, Object> map);

    /**
     * 获取用户信息
     * @author shd
     * @date 2022/4/25 14:37
     * @param map
     * @return com.xique.common.core.utils.json.JSONObject
     */
    @GET("cgi-bin/user/info")
    JSONObject getUserInfo(@QueryMap Map<String, Object> map);
}
